export interface DepartmentDto {
    label: string
    id: number
    children?: DepartmentDto[]
}


export interface StaffDto {
    searchValue: null
    createBy: string
    createTime: string
    updateBy: null
    updateTime: null
    remark: null
    params: Params
    userId: number
    deptId: number
    userName: string
    nickName: string
    email: string
    phonenumber: string
    sex: string
    avatar: string
    salt: null
    saasUserId: number
    userType: null
    type: null
    deptLeader: null
    status: string
    delFlag: string
    loginIp: string
    loginDate: null
    dept: DeptDto
    roles: RoleDto[]
    roleIds: null
    postIds: null
    deptIds: number[] | number
    companyId: null
    companyName: null
    salesId: null
    salesName: null
    idCardNo: null
    postId: null
    entryTime: number | string
    auditStatus: null
    roleKey: null
    receiverSales: string
    isPcAdmin: null
    searchText: null
    ancestors: null
    deptName: null
    isSupPcAdmin: null
    isGrpLead: null
    crmAuditStatus: number
    isJoinRankingList: null
    isShowRankingList: null
    admin: boolean
    role?: RoleDto
}

export interface RoleDto {
    searchValue: null
    createBy: null
    createTime: null
    updateBy: null
    updateTime: null
    remark: null
    params: Params
    roleId: number
    roleName: string
    roleKey: string
    roleSort: number
    dataScope: null
    menuCheckStrictly: boolean
    deptCheckStrictly: boolean
    status: string
    delFlag: null
    flag: boolean
    menuIds: null
    deptIds: null
    platform: null
    peopleCount: null
    admin: boolean
}

export interface DeptDto {
    searchValue: null
    createBy: null
    createTime: null
    updateBy: null
    updateTime: null
    remark: null
    params: Params
    deptId: number
    parentId: null
    ancestors: null
    deptName: string
    orderNum: null
    leader: string | number
    phone: null
    email: null
    status: string | number
    delFlag: null
    parentName: null
    platform: null
    type: number
    peopleCount: null
    isEditChannel: null
    channelId: null
    channelName: null
    bankName: null
    receiptId: null
    deptIds: null
    children: any[]
}

interface Params {
}

export interface AddDeptReqDto {
    parentId: number
    deptName: string
    orderNum: number
    leader: number
    status: number
    type: number
}

export interface EditDeptReqDto extends AddDeptReqDto {
    deptId: number
    isEditChannel: number
}


export interface MemberTypeDto {
    searchValue: null
    createBy: string
    createTime: string
    updateBy: null
    updateTime: null
    remark: string
    params: Params
    postId: number
    postCode: string
    postName: string
    postSort: string
    status: string
    flag: boolean
    platform: number
}


export interface AddStaffReqDto {
    idCardNo: string
    salesName: string
    deptId: number
    userName: string
    nickName: string
    password: string
    phonenumber: string
    isJoinRankingList: string
    isShowRankingList: string
    crmAuditStatus: number
    roleKey: string
    sex: string
    avatar: string
    postIds: number[]
    roleIds: number[]
    entryTime: number
}

export interface EditStaffReqDto extends AddStaffReqDto {
    receiverSales: string
    userId: number
    auditStatus: number
}


export interface OperateRecordDto {
    id: number
    saleId: number
    dealId: number
    type: number
    createTime: number
    operateContent: string
    createUserId: null
    saleOldId: null
    userId: null
    params: Params
    operateType: null
    companyName: null
    productType: null
    afterSalesName: null
}


export interface RoleMenuDto {
    label: string
    id: number
    children: RoleMenuDto[]
}

export interface AddRoleReqDto {
    roleName: string
    status: string
    roleKey: string
    roleSort: number
    menuIds: number[]
}

export interface DictionaryDto {
    searchValue: null
    createBy: string
    createTime: string
    updateBy: null
    updateTime: null
    remark: string
    params: Params
    dictId: number
    dictName: string
    dictType: string
    status: string
}

interface Params {
}



export interface MenuDto {
    searchValue: null
    createBy: null
    createTime: string
    updateBy: null
    updateTime: null
    remark: null
    menuId: number
    menuName: string
    parentName: null
    parentId: number
    orderNum: string
    path: string
    component: string
    isFrame: string
    isCache: string
    menuType: string
    visible: string
    status: string
    perms: string
    icon: string
    platform: number
    titleList: null
    isShowCrumb: number
    children: any[]
}

export interface MenuReqDto {
    parentId: number
    menuName: string
    menuType: string
    orderNum: number
    isFrame: string
    isCache: string
    visible: string
    status: string
    platform: string
    remark: string
    path: string
    isShowCrumb: number
}

export interface AddReceiptReqDto {
    channelId: number
    bankName: string
    bankNameAbbreviation: string
    openBank: string
    bankNo: string
    wechatMchId: string
    wechatMchKey: null
    apiKey: null
    keyPath: null
    privateCertPath: null
    privateKeyPath: null
}

export interface EditReceiptReqDto extends AddReceiptReqDto {
    id: number
}
